<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 字符类:[] 表示有一系列字符可供选择 只要匹配其中一个就可以了
        // []外无首尾边界符即为:只要包含其中一个即可 不论在添加什么内容都返回true
        // []外有首尾边界符即为:只匹配其中一个(只能选一个 只能验证一个) 可供选择的字符都放在方括号内 
        // -:范围
        // 字符组合:/^[a-zA-Z0-9-_]$/
        // [^]:边界符在方括号内部即为 取反符 (取反符后面内容全部取反)

        var rg = /[abc]/ //只要包含有a 或者包含有b 或者包含有c 都返回为true
        console.log(rg.test('andy'));//true
        console.log(rg.test('Andy'));//false 区分大小写
        console.log(rg.test('body'));//true
        console.log(rg.test('color'));//true
        console.log(rg.test('red'));//false
        console.log('----------------');

        var rg1 = /^[abc]$/ //三选一(加首尾边界符后可以理解为多选一即可) 只有是a 或者是 b 或者是c 这三个字母才返回true
        console.log(rg1.test('a'));//true
        console.log(rg1.test('b'));//true
        console.log(rg1.test('c'));//true
        console.log(rg1.test('abc'));//false
        console.log('----------------');
        var rg12 = /^[a-z]$/ //26个小写英文字母任何一个字母返回true (加了首尾边界符即为多选一)
        //  - 短横杠 代表范围
        console.log(rg12.test('z'));//true
        console.log(rg12.test('a'));
        console.log(rg12.test('j'));
        console.log(rg12.test('g'));
        console.log('----------------');

        var vg123 = /^[a-zA-Z0-9-_]$/ //多选一:小写a到z 大写A到Z(大小写都可以) 数字0到0 短横杠 - 下划线 都返回true
        console.log(vg123.test('A'));//true
        console.log(vg123.test('b'));//true
        console.log(vg123.test('0'));//true
        console.log(vg123.test('-'));//true
        console.log(vg123.test('_'));//true
        console.log(vg123.test('!'));//false
        console.log('----------------');

        var vg123 = /^[^a-zA-Z0-9-_]$/ //中括号内添加^ 表示将后面内容全部取反
        console.log(vg123.test('A'));//false
        console.log(vg123.test('b'));//false
        console.log(vg123.test('0'));//false
        console.log(vg123.test('-'));//false
        console.log(vg123.test('_'));//false
        console.log(vg123.test('!'));//true



    </script>
</body>

</html>